# 人生重开模拟器
import random
import sys
import time

print("+--------------------------------+")
print("|                                |")
print("|     花有重开日, 人无再少年        |")
print("|                                |")
print("|     欢迎来到人生重开模拟器         |")
print("|                                |")
print("+--------------------------------+")

# 设置初始属性
# 家境, 体质, 智力, 颜值 总和不能超过 20, 并且每项的取值 都在 0 - 10 之间

# 使用循环, 使玩家在输入不合法的时候, 重新输入
while True:
    print("请设置初始属性, 可用的总共的点数为 20")
    home = int(input("请输入家境(0 - 10):"))
    strong = int(input("请输入体质(0 - 10):"))
    iq = int(input("请输入智力(0 - 10):"))
    face = int(input("请输入颜值(0 - 10):"))

    # 通过条件语句, 对用户输入的属性值进行 校验检查
    if home < 1 or home > 10:
        print("家境设置有误")
        continue
    if strong < 1 or strong > 10:
        print("体质设置有误")
        continue
    if iq < 1 or iq > 10:
        print("智力设置有误")
        continue
    if face < 1 or face > 10:
        print("颜值设置有误")
        continue
    if home + strong + iq + face > 20:
        print("属性值总和超过了 20 ")
        continue

    print("属性值设置完毕!")
    print(f"家境: {home}, 体质: {strong}, 智力: {iq}, 颜值: {face}")
    break

# 生成角色的性别
# 使用 random 模块中的 randint [a, b]
point = random.randint(0, 6)
# print(f"point= {point}")
if point % 2 == 1:
    gender = 'boy'
    print("你是个男孩")
else:
    gender = 'girl'
    print("你是个女孩")

# 设置角色的出生点
# 为了简单, 就生成 1 - 3 的随机数
point = random.randint(1, 3)
if home == 10:
    # 第一档
    print("你出生在帝都, 你的父母是高官政要")
    strong += 1
    iq += 1
    face += 1
elif 7 <= home <= 9:
    # 第二档
    if point == 1:
        print("你出生在大城市, 你的父母是公务员")
        face += 2
    elif point == 2:
        print("你出生在大城市, 父母是企业高管")
        home += 2
    else:
        print("你出生在大城市, 父母是大学教授")
        iq += 2
elif 4 <= home <= 6:
    # 第三档
    if point == 1:
        print("你出生在三线城市, 父母是医生")
        strong += 1
    elif point == 2:
        print("你出生在镇上, 父母是教师")
        iq += 1
    else:
        print("你出生在镇上, 你的父母是个体户")
        home += 1
else:
    # 第四档
    if point == 1:
        print("你出生在农村, 父母是辛苦劳作的农民")
        strong += 1
        face -= 2
    elif point == 2:
        print("你出生在穷乡僻壤, 父母是无业游民")
        home -= 1
    else:
        print("你出生在镇上, 你的父母感情不和")
        strong -= 1
print(f"家境: {home}, 体质: {strong}, 智力: {iq}, 颜值: {face}")

# 幼年阶段 0 - 10 岁
for age in range(1, 11):
    # 把一整年的打印都整理到一个字符串中, 在这一年的结尾统一打印
    info = f'你今年 {age} 岁, '
    point = random.randint(1, 3)
    # 接下来编写各种事件的代码
    # 性别触发的事件
    if gender == 'girl' and home <= 3 and point ==1:
        info += "你的家里人重男轻女思想非常严重, 你被遗弃了!"
        print(info)
        print("游戏结束")
        sys.exit(0)
    # 体质触发的事件
    # 使用 elif 是为了保证每年只触发一个事件
    elif strong < 6 and point < 3:
        info += '你生了一场病, '
        if home >= 5:
            info += "在父母的悉心照料下, 你康复了"
            strong += 1
            home -= 1
        else:
            info += "你的父母没有精力管你, 你的身体状况更糟糕了"
            strong -= 1
    #   颜值触发事件
    elif face <= 4 and age >= 7:
        info += "你长得太丑了, 别的小朋友不喜欢你. "
        if iq > 5:
            info += "你决定用学习填充自己"
            iq += 1
        else:
            if gender == 'boy':
                info += "你和别的小朋友经常打架!"
                strong += 1
                iq -= 1
            else:
                info += "你经常被别的小朋友欺负"
                strong -= 1
    # 智商触发的事件
    elif iq < 5:
        info += "你看起来傻傻的"
        if home >= 8 and age >= 6:
            info += "你的父母把你送到更好的学校学习"
            iq += 1
        elif 4 <= home <= 7:
            if gender == "boy":
                info += "你的父母鼓励你多运动, 争取成为运动员"
                strong += 1
            else:
                info += "你的父母鼓励你多打扮你自己"
                face += 1
        else:
            # home < 4
            info += '你的父母为经常吵架'
            if point == 1:
                strong -= 1
            elif point == 2:
                iq -= 1
            else:
                # pass 就是什么都不干
                pass

    # 健康成长事件
    else:
        info += "你健康成长"
        if point == 1:
            info += "你看起来更结实了"
            strong += 1
        elif point == 2:
            info += "你看起来更好看了"
            face += 1
        else:
            # 无事发生
            pass

    # 打印这一年发生的事情
    print(info)
    print(f"家境: {home}, 体质: {strong}, 智力: {iq}, 颜值: {face}")
    print("--------------------------------------------------")
    # 为了观察方便, 加一个小小的暂停操作
    time.sleep(1)